ESP8266串口的使用 您所在的位置:网站首页 串口tx rx ESP8266串口的使用

ESP8266串口的使用

#ESP8266串口的使用| 来源: 网络整理| 查看: 265

ESP8266上有两组串口,Serial(UART0)和Serial1(UART1)。UART1只能用于写数据,不能用于接收数据,因为它的RX引脚被用于flash芯片连接

串口UART0

Serial使用UART0,默认对应引脚是GPIO1(TX)和GPIO3(RX)。

在Serial.begin执行之后,调用Serial.swap()可以将Serial重新映射到GPIO15(TX)和GPIO13(RX)。再次调用Serial.swap()将Serial重新映射回GPIO1和GPIO3。

void setup() { // 这里开始写初始化代码,只会执行一次 Serial.begin(115200); Serial.println("GPIO1(TX),GPIO3(RX)"); //调用映射方法 Serial.swap(); Serial.println("GPIO15(TX),GPIO13(RX)"); //重新映射回来 Serial.swap(); Serial.println("GPIO1(TX),GPIO3(RX)"); } void loop() { //这里写运行代码,重复执行}

对于需要使用两个串口的项目来说,可以使用Serial引脚的映射切换,来实现两个串口的通讯。

串口UART1

Serial1使用UART1,默认对应引脚是GPIO2(TX)

void setup() { // 这里开始写初始化代码,只会执行一次 SerialConfig config = SerialConfig::SERIAL_8N1; SerialMode mode = SerialMode::SERIAL_TX_ONLY; // put your setup code here, to run once: Serial1.begin(9600,config,mode); Serial1.println("Hello Serial1"); } void loop() { //这里写运行代码,重复执行 } 串口引脚的使用 ESP8266 串口引脚映射关系 引脚UART0UART11TXD(默认)2TXD(Serial.set_tx(2))TXD(默认,且当UART0未使用时可用)3RXD(默认)13RXD(swap后)15TXD(swap后)

UART0可以使用的引脚组合由(1,3)(2,3)(15,13)

UART1只能有写入功能,只能使用2引脚,且在UART0未使用(2,3)组合时可用

如果串口不够用怎么办? 方法一、切换引脚 //初始化时指定写入引脚 Serial.begin(9600,config,mode,2); //使用swap切换 Serial.swap(2); //使用set_tx切换 Serial.set_tx(2); //使用pins切换 Serial.pins(15,13); 方法二、使用软件模拟串口 #include //自定义串口 SoftwareSerial MySerial; int incomingByte = 0; void setup() { // 这里开始写初始化代码,只会执行一次 Config conf = Config::SWSERIAL_8N1; //设置引脚5为rxd 2为txd MySerial.begin(9600,conf,5,2); } void loop() { //这里写运行代码,重复执行 if(MySerial.available()>0){ incomingByte = MySerial.read(); MySerial.print("U1接收数据: 0x"); MySerial.println(incomingByte, HEX); } }

需要安装 SoftwareSerial 的函数库 EspSoftwareSerial



【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有